package com.et114.components.acegi.acl;

import org.acegisecurity.AccessDeniedException;
import org.acegisecurity.Authentication;
import org.acegisecurity.ConfigAttribute;
import org.acegisecurity.ConfigAttributeDefinition;

/**
 * Creator在domainObject创建的时候创建domainObject的ACL信息.
 *
 * @author guanhw  
 */
public interface AclCreator {
    //~ Methods ================================================================

    public void creat(Authentication authentication, Object object,
                      ConfigAttributeDefinition config, Object returnedObject)
            throws AccessDeniedException;


    public boolean supports(ConfigAttribute attribute);

    public boolean supports(Class clazz);

    public boolean supports(Object domainObject, Object returnedObject);
}
